package cn.kilo.trigger.api;

import cn.kilo.trigger.api.dto.order.OrderDTO;
import cn.kilo.types.model.Response;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author kilok
 *
 */
public interface IOrderService {

    Response<?> placeOrder(OrderDTO orderDTO);

    Response<?> updateOrderPicture(Long orderId,MultipartFile image);

    Response<?> getCreateOrder(OrderDTO orderDTO);

    Response<?> getTokenOrder(OrderDTO orderDTO);
    Response<?> generateQRCodeByRidgepole(HttpServletRequest request, HttpServletResponse response, OrderDTO orderDTO);

    Response<?> getOrder(OrderDTO orderDTO);

    Response<?> getOrderByQRCode(OrderDTO orderDTO);

    Response<?> getGuardTokenOrder(OrderDTO orderDTO);

    Response<?> generateQRCodeByFloor(HttpServletRequest request, HttpServletResponse response,OrderDTO orderDTO);

    Response<?> takeOrder(OrderDTO orderDTO);

    Response<?> overOrder(OrderDTO orderDTO);

    Response<?> updateOverPicture(MultipartFile image,Long orderId) throws IOException;

    Response<?> userConfirmOrder(OrderDTO orderDTO);

    Response<?> getDepartment();

    Response<?> getOrderInfoList(OrderDTO orderDTO);

    Response<?> userGetOrderInfo(OrderDTO orderDTO);

    Response<?> getUserOrder(OrderDTO orderDTO);

    Response<?> judgeOrder(OrderDTO orderDTO);

    Response<?> getOrderNumber();

    Response<?> setWeather(OrderDTO orderDTO);

    Response<?> getAllJudgement(String type);

    Response<?> getLeftStaff(OrderDTO orderDTO);

    Response<?> getDepartmentGroup();

    Response<?> getPosition();

    Response<?> getFloor(OrderDTO orderDTO);

    Response<?> getStaff(OrderDTO orderDTO);
}
